package com.cskaoyan.javase.oop3.returnvaluetype4;

/**
 * @description: 把接口和抽象类作为方法的返回值类型
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * > 在子父类重写的方法中的类型书写
 * 1.基本类型:返回的是值，返回什么类型就是什么类型接收
 * 这里不存在类型提升
 * 2.引用类型
 * 这是是有向上转型的
 * ​		类：其实返回的是该类或者该类子类的对象。
 * ​		抽象类：其实返回的是该类的子类对象
 * ​		接口：其实返回的是该接口的子类对象
 *  方法的重写当中，父子类方法的返回值类型 只需要兼容就可以了
 *
 *
 */
public class Demo {
}

class Father{
    public I test(){
        return null;
    }
}
class Son extends Father{
    @Override
    public IImpl test() {
        return null;
    }
}

abstract class AbstractPerson {
}

class Person2 extends AbstractPerson {
}

interface I {
}

class IImpl implements I {
}


